Skip to content

DEV: показать статистику участников - #381

Merged
TThanos3000 merged 1 commit into
devfrom
feature/dev-member-statistics
Sep 27, 2026
Merged

TThanos3000 merged 1 commit into
devfrom
feature/dev-member-statistics

Conversation

@TThanos3000

Copy link
Copy Markdown
Contributor

Результат

Заглушка статистики на /office/members заменена отдельным MemberStatisticsCardComponent с четырьмя реальными глобальными агрегатами. Desktop sidebar остаётся 157 px, карточка — 157 × 280 px; координаты основной сетки по X, фильтров, аватаров и кнопки профиля сохранены.

Ниже 1000 px порядок: поиск → Фильтры / Перейти в профиль → статистика 2 × 2 → список участников. Loading/error показывают прочерки и безопасный aria/status; настоящий ноль отображается как 0. Размер блока не меняется между состояниями.

SHA

Base: 96a7a676f7d47194fa105fb1748a5bfc28b5b544

Head: be2469e0b29dfaa4272c6b5036f864e75a4fc994

Backend dependency: PROCOLLAB-github/api#756

Данные

GET /auth/public-users/stats/ → общий CamelcaseInterceptor → типизированные port / adapter / repository → use-case / facade → UI. Поиск, фильтры и пагинация не передаются в endpoint; facade страницы загружает статистику один раз и отписывается при уходе.

Для активных legacy CustomUser, user_type=MEMBER:

  • Всего участников — число людей этой выборки.
  • В проектах — уникальные лидеры или Collaborator проектов draft=False, is_public=True.
  • В программах — уникальные люди с PartnerProgramUserProfile программы draft=False.
  • Новых за 30 дней — datetime_created >= timezone.now() - timedelta(days=30), включая границу.

Backend считает это одним SQL-запросом; проверены 10/100/1000 пользователей и множественные связи. Неполный/неверный ответ не подменяется нулями.

Проверки

Node 20.20.2, npm ci:

  • Targeted Members / member API / adapter / repository: 50/50, 11 файлов.
  • npm run test:ci -- --pool=forks: 1819/1819, 391 файл, exit 0, без unhandled errors.
  • npm run lint:ts: exit 0, шесть прежних предупреждений вне diff.
  • Scoped Stylelint и Prettier: exit 0.
  • npm run build:prod: exit 0, существующие Sass/CommonJS warnings.
  • git diff --check: exit 0.
  • Общий npm run format:check на exact HEAD, экспортированном с LF: exit 0. На Windows checkout core.autocrlf=true исходно даёт CRLF warnings: 1524 файла на чистой базе / 1517 в рабочей копии. База с LF тоже GREEN; конфигурация и чужие файлы не менялись.

Локальная браузерная проверка на реальной странице Angular с синтетическими данными: 1440 / 1280 / 1024 / 768 / 414 / 390 / 375 px, horizontal overflow 0. Desktop X сетки до/после: 365.828125 / 285.828125 / 201.5 соответственно — без изменений. Значения 0, 9, 63, 999, 1248, 12345, 12500, 999999 помещаются. Console errors нет; NG0912 о существующих IconComponent воспроизводится также на base.

Скриншоты и измерения

Полный отчёт, семь ширин и состояния

Фактическая геометрия

До:

Desktop до

После:

Desktop после

Крупный план: 157 CSS px, фрагмент снимка ×2

Mobile и первая карточка

Границы

Shared SoonCard, member cards, skills, search и mobile filters не изменены. React untouched, dependencies/workflows unchanged. Только DEV. Merge/deploy не выполнялись.

При будущем DEV-deploy сначала нужен backend #756. Live-проверка нового endpoint на развёрнутом DEV не выполнялась; скриншоты показывают синтетические данные локальной проверки.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants